#ifndef frm_TStyle_H
#define frm_TStyle_H

#include "svl.h"
#include "frm_TFont.h"

namespace frm {

///////////////////////////////////////////////////////////////////////////////

struct TStyle : public svl::TArray_Object
{
  svl_Type(svl::TArray_Object)
  //
  virtual void SetFromParent(TStyle *Parent) { Except("SetFromParent");}
  
private:
  svl_Except;
};

///////////////////////////////////////////////////////////////////////////////

struct TTableOfStyles : public svl::TDebug
{
  void Clear() { a.Clear();}
  int  Count() { return a.Count();}
  //
  TStyle *SearchByType     (svl::TType &Type);
  TStyle *SearchByEqualType(svl::TType &Type);
  //
  void Add(TStyle *P,bool EnDelete);
  void ReplaceLinkFrom(TTableOfStyles &From);
  //
  void Delete(int N)     { a.Delete(N);}
  void Delete(TStyle *P) { a.Delete(P);}
  void DeleteIfSearchByEqualType(svl::TType &Type);
  //
  TStyle &Get(int N) { return *static_cast<TStyle*>(a.Get(N));}

private:
  svl::TArray a;
  svl_Except;
};

///////////////////////////////////////////////////////////////////////////////
}

#endif
